//
//  main.cpp
//  LOG2810
//
//  Created by Jules Thuillier on 01/03/2014.
//  Copyright (c) 2014 Jules Thuillier. All rights reserved.
//

#include <iostream>
#include "reader.h"
#include "chemin.h"



int menu(){
    
    int reponse;
    
    std::cout << endl << "Que voulez-vous faire ? (1-4)" << endl << endl;
    std::cout << "1 - Lire le fichier des distances" << endl;
    std::cout << "2 - Calculer le chemin" << endl;
    std::cout << "3 - Afficher les points" << endl;
    std::cout << "4 - Quitter" << endl << endl;
    std::cout << "Votre choix : ";
    
    cin >> reponse;
    
    while (cin.fail() || reponse < 1 || reponse > 4){
        
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
        
        std::cout << endl << "Que voulez-vous faire ? (1-4)" << endl << endl;
        std::cout << "1 - Lire le fichier des distances" << endl;
        std::cout << "2 - Calculer le chemin" << endl;
        std::cout << "3 - Afficher les points" << endl;
        std::cout << "4 - Quitter" << endl << endl;
        std::cout << "Votre choix : ";
        
        cin >> reponse;
        
        if(cin.fail() || reponse < 1 || reponse > 4){
            std::cout << "Erreur dans le choix" << endl;
        }
        
    }
    
    
    return reponse;
}


// ======== MAIN =========

int main(int argc, const char * argv[])
{
    reader lecteur;
    chemin chemins;
    int choix;
    
    do{
    choix = menu();
    
    switch ( choix ) {
        case 1:
            lecteur.read();
            chemins.set_matrix(lecteur.get_matrix());
            break;
            
        case 2:
             if(!lecteur.is_empty()){
                 chemins.calculer_chemin();
             }
             else{
                 cout << endl << endl << "Vous n'avez pas choisi de fichier !" << endl;
             }
            break;
            
        case 3:
            if(!lecteur.is_empty()){
                 chemins.afficher_sommets();
             }
             else{
                 cout << endl << endl << "Vous n'avez pas choisi de fichier !" << endl;
             }
            break;
            
        default:
            break;
    }
	
    } while (choix != 4);
        
    return 0;
}

